package reflect;

import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.concurrent.Callable;

public class ReflectDemo6 {
    public static void main(String[] args) throws  Exception {
        Class cls =Class.forName("reflect.Person");
        Method method =cls.getMethod("say",String.class,int.class);
        String name =method.getName();
        System.out.println("方法名:"+name);
        Class returnType =method.getReturnType();
        System.out.println("返回类型:"+returnType);//获取方法的返回值类型
        int count =method.getParameterCount();//获取方法有多少个参数
        System.out.println("参数个数:"+count);
        Class[] parameterTypes =method.getParameterTypes();
        for (Class parameterType:parameterTypes){
            System.out.println("参数类型:"+parameterType);
        }
        //获取该方法的访问修饰符
        int modifiers=method.getModifiers();
        switch (modifiers){
            case Modifier.PUBLIC:
                System.out.println("是一个public方法");
                break;
            case Modifier.PRIVATE:
                System.out.println("是一个private方法");
                break;
            case Modifier.PROTECTED:
                System.out.println("是一个protected方法");
                break;
            default:
                System.out.println("是一个default方法");
        }
        };
    }